package com.hh.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hh.entity.domain.UserCollection;
import com.hh.entity.dto.collect.DoCollectRequest;

import javax.servlet.http.HttpServletRequest;

/**
 * @author hanhui
 * @description: 针对表【user_collection】的数据库操作Service
 * @createDate 2025-06-01 18:29:16
 */
public interface UserCollectionService extends IService<UserCollection> {

    /**
     * 执行收藏操作
     *
     * @param doCollectRequest 收藏请求参数，包含被收藏内容的ID等信息
     * @param request HTTP请求对象，用于获取用户会话信息
     * @return 收藏操作是否成功，true表示成功，false表示失败
     */
    Boolean doCollect(DoCollectRequest doCollectRequest, HttpServletRequest request);

    /**
     * 取消收藏操作
     *
     * @param doCollectRequest 取消收藏请求参数，包含被收藏内容的ID等信息
     * @param request HTTP请求对象，用于获取用户会话信息
     * @return 取消收藏操作是否成功，true表示成功，false表示失败
     */
    Boolean unCollect(DoCollectRequest doCollectRequest, HttpServletRequest request);

    /**
     * 检查指定用户是否已收藏指定内容
     *
     * @param blogId 被收藏内容的ID
     * @param userId 用户的ID
     * @return 如果已收藏返回true，否则返回false
     */
    Boolean hasCollected(Long blogId, Long userId);
}
